package com.xnyzc.lhy.order.entity.order;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableLogic;
import com.baomidou.mybatisplus.annotation.Version;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;

/**
 * 私用行程表
 *
 * @author lhy@xnyzc.com
 * @since 2019-07-25
 */
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@ApiModel(value = "OaCSelfStroke对象", description = "私用行程表")
public class OaCSelfStroke implements Serializable {

    private static final long serialVersionUID = 1L;

    @ApiModelProperty(value = "ID")
    @TableId(value = "stroke_id", type = IdType.INPUT)
    private Long strokeId;

    @ApiModelProperty(value = "订单ID")
    private String orderNo;

    @ApiModelProperty(value = "开始时间")
    private Date startTime;

    @ApiModelProperty(value = "开始经度")
    private String startLng;

    @ApiModelProperty(value = "开始纬度")
    private String startLat;

    @ApiModelProperty(value = "开始地址")
    private String startAddress;

    @ApiModelProperty(value = "结束时间")
    private Date endTime;

    @ApiModelProperty(value = "结束经度")
    private String endLng;

    @ApiModelProperty(value = "结束纬度")
    private String endLat;

    @ApiModelProperty(value = "结束地址")
    private String endAddress;

    @ApiModelProperty(value = "时长费")
    private BigDecimal durationFee;

    @ApiModelProperty(value = "时长（分钟）")
    private BigDecimal durationTime;

    @ApiModelProperty(value = "里程费")
    private BigDecimal mileageFee;

    @ApiModelProperty(value = "里程距离")
    private BigDecimal mileageDistance;

    @ApiModelProperty(value = "私用总费用")
    private BigDecimal strokeTotalFee;

    @ApiModelProperty(value = "用户来源")
    private String tag;

    @ApiModelProperty(value = "扩展字段1")
    private String expand1;

    @ApiModelProperty(value = "扩展字段2")
    private String expand2;

    @ApiModelProperty(value = "扩展字段3")
    private String expand3;

    @ApiModelProperty(value = "版本号")
    @Version
    private Long version;

    @ApiModelProperty(value = "是否删除(0:否,1:是)")
    @TableLogic
    private Integer deleted;

    @ApiModelProperty(value = "创建人")
    private Long createUser;

    @ApiModelProperty(value = "创建时间")
    private Date createTime;

    @ApiModelProperty(value = "更新人")
    private Long updateUser;

    @ApiModelProperty(value = "更新时间")
    private Date updateTime;

    @ApiModelProperty(value = "当前总里程")
    @TableField(exist = false)
    private Date totalMileage;

    public static final String STROKE_ID = "stroke_id";

    public static final String ORDER_NO = "order_no";

    public static final String START_TIME = "start_time";

    public static final String START_LNG = "start_lng";

    public static final String START_LAT = "start_lat";

    public static final String START_ADDRESS = "start_address";

    public static final String END_TIME = "end_time";

    public static final String END_LNG = "end_lng";

    public static final String END_LAT = "end_lat";

    public static final String END_ADDRESS = "end_address";

    public static final String DURATION_FEE = "duration_fee";

    public static final String DURATION_TIME = "duration_time";

    public static final String MILEAGE_FEE = "mileage_fee";

    public static final String MILEAGE_DISTANCE = "mileage_distance";

    public static final String STROKE_TOTAL_FEE = "stroke_total_fee";

    public static final String TAG = "tag";

    public static final String EXPAND1 = "expand1";

    public static final String EXPAND2 = "expand2";

    public static final String EXPAND3 = "expand3";

    public static final String VERSION = "version";

    public static final String DELETED = "deleted";

    public static final String CREATE_USER = "create_user";

    public static final String CREATE_TIME = "create_time";

    public static final String UPDATE_USER = "update_user";

    public static final String UPDATE_TIME = "update_time";

}
